#include <iostream>
#include <future>
#include <thread>   //虽然写代码没用上，但是内部也是用了线程库的接口的

int Add(int n1, int n2)
{
    std::cout << "into add" << std::endl;
    return n1 + n2;
}

int main()
{
    //std::launch::async:内部创建一个线程执行函数，函数运行结果通过future获取
    //std::launch::deferred：同步策略，内部创建一个线程, 在获取结果的时候，才去执行结果
    std::future<int> res =  std::async(std::launch::deferred, Add, 11, 22);
    std::this_thread::sleep_for(std::chrono::seconds(1));
    std::cout << "--------------------------" << std::endl;
    std::cout << res.get() << std::endl;   //如果完成了就获取到结果，没完成的话会阻塞在这里。
    return 0;
}
